#include "expresio.h"

//**************************************
//************Seleccion*****************
//**************************************

Tipo_Expresion seleccionarTipoExpresion(Expresion expresion){
    return expresion.tipoExpresion;
}

Parentesis seleccionarParentesis(Expresion expresion){
    return expresion.Tipo.parent;
}

Conectivas seleccionarConectiva(Expresion expresion){
    return expresion.Tipo.conect;
}
char seleccionarLetraProposicional(Expresion expresion){
    return expresion.Tipo.letraProposicional;
}


//**************************************
//****************Carga*****************
//**************************************

void cargarExpresionParentesis(Parentesis parentesis, Expresion &expresion){
   expresion.tipoExpresion = parente;
   expresion.Tipo.parent = parentesis;
}

void cargarExpresionConectiva(Conectivas conectiv, Expresion &expresion){
   expresion.tipoExpresion = conectiva;
   expresion.Tipo.conect = conectiv;
}
void cargarExpresionLetra(char letraProposicional, Expresion &expresion){
    expresion.tipoExpresion = letra;
    expresion.Tipo.letraProposicional = letraProposicional;
}

//**************************************
//************Desplegue*****************
//**************************************

void desplegarExpresion(Expresion expresion){
    switch(seleccionarTipoExpresion(expresion)){
        case parente:
            desplegaParentesis(seleccionarParentesis(expresion));
            break;
        case conectiva:
            desplegaConectivas(seleccionarConectiva(expresion));
            break;
        case letra:
            printf("%c", seleccionarLetraProposicional(expresion));
            break;
        default:;
    }
}

//**************************************
//************Comparacion***************
//**************************************

bool esExpresionParentesis(Expresion expresion){
    if(seleccionarTipoExpresion(expresion)==parente)
        return true;
    else
        return false;
}

bool esExpresionConectiva(Expresion expresion){
    if(seleccionarTipoExpresion(expresion)==conectiva)
        return true;
    else
        return false;
}

bool esExpresionLetraProposicional(Expresion expresion){
    if(seleccionarTipoExpresion(expresion)== letra)
        return true;
    else
        return false;
}





